/**
 * SysDynamic.java -- 2017-10-26 10:04:26
 * 作者：欧增奇 -- 代码生成器自动生成
 * 联系方式：425752797@qq.com
 * http://www.ouzengqi.com/
 */
package com.ozq.sys.dao.mapper;

import java.util.List;
import java.util.Map;

import com.ozq.sys.dao.entity.SysDynamic;

/**
 * <动态表类接口> <功能详细描述>
 * 
 * @author 欧增奇
 * @version [V2.0, 2017-10-26 10:04:26]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface SysDynamicMapper
{
    /** -----------------------------统计-方法（3个）----------------------------- **/
    /**
     * 统计所有的记录数
     * 
     * @return int
     */
    int countAll();

    /**
     * 按照条件精确统计动态表
     * 
     * @param sysDynamic
     * @return int
     */
    int countBy(SysDynamic sysDynamic);

    /**
     * 按照条件模糊统计动态表
     * 
     * @param sysDynamic
     * @return int
     */
    int countLike(SysDynamic sysDynamic);

    /** -----------------------------添加-方法（3个）----------------------------- **/
    /**
     * 插入动态表
     * 
     * @param sysDynamic
     */
    void insert(SysDynamic sysDynamic);

    /**
     * 插入动态表集合
     * 
     * @param sysDynamic
     */
    void insertList(List<SysDynamic> sysDynamics);

    /**
     * 批量插入动态表，当id存在更新这条数据，不存在插入这条数据（注意：会影响所有字段）
     * 
     * @param sysDynamics
     */
    void insertUpdateList(List<SysDynamic> sysDynamics);

    /** -----------------------------更新-方法（2个）----------------------------- **/
    /**
     * 修改动态表，注意（id不能为空，否则修改失败）
     * 
     * @param sysDynamic
     */
    void update(SysDynamic sysDynamic);

    /**
     * 批量修改动态表，注意（id不能为空，否则修改失败，数据库必须连接必须设置为：&allowMultiQueries=true）
     * 
     * @param sysDynamics
     */
    void updateList(List<SysDynamic> sysDynamics);

    /** -----------------------------删除-方法（4个）----------------------------- **/
    /**
     * 动态表指定id删除
     * 
     * @param dynamicId
     */
    void deleteById(Integer dynamicId);

    /**
     * 动态表批量删除指定ids
     * 
     * @param dynamicId
     */
    void deleteByIds(List<Integer> dynamicIds);

    /**
     * 按照条件精确删除动态表（注意：当条件为空会删除所有记录）
     * 
     * @param sysDynamic
     */
    void deleteBy(SysDynamic sysDynamic);

    /**
     * 按照条件模糊删除动态表（注意：当条件为空会删除所有记录）
     * 
     * @param sysDynamic
     */
    void deleteLike(SysDynamic sysDynamic);

    /** -----------------------------查询-方法（5个）----------------------------- **/
    /**
     * 按照id查询动态表
     * 
     * @param dynamicId
     * @return sysDynamic
     */
    SysDynamic selectById(Integer dynamicId);

    /**
     * 按照ids查询动态表
     * 
     * @param dynamicIds
     * @return sysDynamic集合
     */
    List<SysDynamic> selectByIds(List<Integer> dynamicIds);

    /**
     * 按照条件精确查询动态表返回集合方法
     * 
     * @param sysDynamic
     * @return sysDynamic集合
     */
    List<SysDynamic> listBy(SysDynamic sysDynamic);

    /**
     * 按照条件模糊查询动态表返回集合方法
     * 
     * @param sysDynamic
     * @return sysDynamic集合
     */
    List<SysDynamic> listLike(SysDynamic sysDynamic);

    /**
     * 自定义查询sql，注意严禁执行除查询以外的语句（是不推荐这样执行处理的）
     * 
     * @param sql语句
     * @return map集合
     */
    @Deprecated
    List<Map<String, Object>> selectCustom(String selectSQL);
}